# Author: Yu Bin
# Date: 2024/12/27 19:17:46
# E-mail: 853823259@qq.com

# 2、求两个有序数字列表的公共元素
a = [1, 2, 3, 4, 5, 6]
b = [2, 4, 6, 8, 10]
print(list(set(a).intersection(set(b))))


# 3、给定一个n个整型元素的列表a，其中有一个元素出现次数超过n / 2，求这个元素
def question_3(a, n):
    for i in a:
        if a.count(i) > n / 2:
            break
    return i


a = [1, 2, 3, 4, 3, 4, 5, 2, 2, 2, 2, 2, 2]

print(question_3(a, 13))
# 4、列表、元组，字典的相同点，不同点有哪些，请罗列。
# 相同点：都可以存储一系列元素，可以进行索引、切片、迭代等操作。 都可以进行嵌套，即列表、元组、字典可以包含其他列表、元组、字典。
# 都可以进行比较运算，比较运算的结果可以是布尔值。
# 不同点： 列表和元组的区别：列表是可变的，可以修改元素，元组是不可变的，不能修改元素。

# 5、将元组 (1,2,3) 和集合 {4,5,6} 合并成一个列表。
a = (1, 2, 3)
b = {4, 5, 6}
print(list(a) + list(b))
# 6、在列表 [1,2,3,4,5,6] 首尾分别添加整型元素 7 和 0。
a = [1, 2, 3, 4, 5, 6]
a.insert(0, 7)
a.append(0)
print(a)
# 7、反转列表 [0,1,2,3,4,5,6,7] 。
a = [0, 1, 2, 3, 4, 5, 6, 7]
print(a[::-1])
# 8、反转列表 [0,1,2,3,4,5,6,7] 后给出中元素 5 的索引号。
a = [0, 1, 2, 3, 4, 5, 6, 7]
print(a[::-1].index(5))
# 9、分别统计列表 [True,False,0,1,2] 中 True,False,0,1,2的元素个数，发现了什么？
a = [True, False, 0, 1, 2]
print(a.count(True))
print(a.count(False))
print(a.count(0))
print(a.count(1))
print(a.count(2))
# 10、从列表 [True,1,0,‘x’,None,‘x’,False,2,True] 中删除元素‘x’。
a = [True, 1, 0, 'x', None, 'x', False, 2, True]
a.remove('x')
a.remove('x')
print(a)
# 11、从列表 [True,1,0,‘x’,None,‘x’,False,2,True] 中删除索引号为4的元素。
a = [True, 1, 0, 'x', None, 'x', False, 2, True]
a.pop(4)
print(a)
# 12、删除列表中索引号为奇数（或偶数）的元素。
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a = [a[i] for i in range(len(a)) if i % 2 == 0]
print(a)
# 13、清空列表中的所有元素。
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a.clear()
print(a)
# 14、对列表 [3,0,8,5,7] 分别做升序和降序排列。
a = [3, 0, 8, 5, 7]
a.sort()
print(a)
a.sort(reverse=True)
print(a)
# 15、将列表 [3,0,8,5,7] 中大于 5 元素置为1，其余元素置为0。
# 16、遍历列表 [‘x’,‘y’,‘z’]，打印每一个元素及其对应的索引号。
# 17、将列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 拆分为奇数组和偶数组两个列表。
# 18、分别根据每一行的首元素和尾元素大小对二维列表 [[6, 5], [3, 7], [2, 8]] 排序。相当于按6,3,2进行排序，除非第一个元素相等，按第二个元素排序。
# 19、从列表 [1,4,7,2,5,8] 索引为3的位置开始，依次插入列表 [‘x’,‘y’,‘z’] 的所有元素。
# 20、快速生成由 [5,50) 区间内的整数组成的列表。
# 21、若 a = [1,2,3]，令 b = a，执行 b[0] = 9， a[0]亦被改变。为何？如何避免？----讲了深COPY和浅COPY再做
# 22、将列表 [‘x’,‘y’,‘z’] 和 [1,2,3] 转成 [(‘x’,1),(‘y’,2),(‘z’,3)] 的形式。
# 23、以列表形式返回字典 {‘Alice’: 20, ‘Beth’: 18, ‘Cecil’: 21} 中所有的键。
# 24、以列表形式返回字典 {‘Alice’: 20, ‘Beth’: 18, ‘Cecil’: 21} 中所有的值。
# 25、以列表形式返回字典 {‘Alice’: 20, ‘Beth’: 18, ‘Cecil’: 21} 中所有键值对组成的元组。
# 26、向字典 {‘Alice’: 20, ‘Beth’: 18, ‘Cecil’: 21} 中追加 ‘David’:19 键值对，更新Cecil的值为17。
# 27、删除字典 {‘Alice’: 20, ‘Beth’: 18, ‘Cecil’: 21} 中的Beth键后，清空该字典。
# 28、判断 David 和 Alice 是否在字典 {‘Alice’: 20, ‘Beth’: 18, ‘Cecil’: 21} 中。
# 29、遍历字典 {‘Alice’: 20, ‘Beth’: 18, ‘Cecil’: 21}，打印键值对。
# 30、若 a = dict()，令 b = a，执行 b.update({‘x’:1})， a亦被改变。为何？如何避免？----讲了深COPY和浅COPY再做
# 31、以列表 [‘A’,‘B’,‘C’,‘D’,‘E’,‘F’,‘G’,‘H’] 中的每一个元素为键，默认值都是0，创建一个字典。
# 32、将二维结构 [[‘a’,1],[‘b’,2]] 和 ((‘x’,3),(‘y’,4)) 转成字典。
# 33、将元组 (1,2) 和 (3,4) 合并成一个元组。
# 34、将空间坐标元组 (1,2,3) 的三个元素解包对应到变量 x,y,z。
# 35、返回元组 (‘Alice’,‘Beth’,‘Cecil’) 中 ‘Cecil’ 元素的索引号。
# 36、返回元组 (2,5,3,2,4) 中元素 2 的个数。
# 37、判断 ‘Cecil’ 是否在元组 (‘Alice’,‘Beth’,‘Cecil’) 中。
# 38、返回在元组 (2,5,3,7) 索引号为2的位置插入元素 9 之后的新元组。
# 39、创建一个空集合，增加 {‘x’,‘y’,‘z’} 三个元素。
# 40、删除集合 {‘x’,‘y’,‘z’} 中的 ‘z’ 元素，增j加元素 ‘w’，然后清空整个集合。
# 41、返回集合 {‘A’,‘D’,‘B’} 中未出现在集合 {‘D’,‘E’,‘C’} 中的元素（差集）。
# 42、返回两个集合 {‘A’,‘D’,‘B’} 和 {‘D’,‘E’,‘C’} 的并集。
# 43、返回两个集合 {‘A’,‘D’,‘B’} 和 {‘D’,‘E’,‘C’} 的交集。
# 44、返回两个集合 {‘A’,‘D’,‘B’} 和 {‘D’,‘E’,‘C’} 未重复的元素的集合。
# 45、判断两个集合 {‘A’,‘D’,‘B’} 和 {‘D’,‘E’,‘C’} 是否有重复元素。
# 46、判断集合 {‘A’,‘C’} 是否是集合 {‘D’,‘C’,‘E’,‘A’} 的子集。
# 47、去除数组 [1,2,5,2,3,4,5,‘x’,4,‘x’] 中的重复元素。
# 48、返回字符串 ‘abCdEfg’ 的全部大写、全部小写和大下写互换形式。
# 49、判断字符串 ‘abCdEfg’ 是否首字母大写，字母是否全部小写，字母是否全部大写。
# 50、返回字符串 ‘this is python’ 首字母大写以及字符串内每个单词首字母大写形式。
# 51、判断字符串 ‘this is python’ 是否以 ‘this’ 开头，又是否以 ‘python’ 结尾。
# 52、返回字符串 ‘this is python’ 中 ‘is’ 的出现次数。
# 53、返回字符串 ‘this is python’ 中 ‘is’ 首次出现和最后一次出现的位置。
# 54、将字符串 ‘this is python’ 切片成3个单词。
# 55、返回字符串 ‘blog.csdn.net/xufive/article/details/102946961’ 按路径分隔符切片的结果。
# 56、将字符串 ‘2.72, 5, 7, 3.14’ 以半角逗号切片后，再将各个元素转成浮点型或整形。
# 57、判断字符串 ‘adS12K56’ 是否完全为字母数字，是否全为数字，是否全为字母？
# 58、将字符串 ‘there is python’ 中的 ‘is’ 替换为 ‘are’。
# 59、清除字符串 ‘\t python \n’ 左侧、右侧，以及左右两侧的空白字符。
# 60、将三个全英文字符串（比如，‘ok’, ‘hello’, ‘thank you’）分行打印，实现左对齐、右对齐和居中对齐效果。
# 61、将三个字符串 ‘15’, ‘127’, ‘65535’ 左侧补0成同样长度。
# 62、将列表 [‘a’,‘b’,‘c’] 中各个元素用’|'连接成一个字符串。
# 63、将字符串 ‘abc’ 相邻的两个字母之间加上半角逗号，生成新的字符串。
# 64、从键盘输入手机号码，输出形如 ‘Mobile: 186 6677 7788’ 的字符串。
# 65、从键盘输入年月日时分秒，输出形如 ‘2019-05-01 12:00:00’ 的字符串。
# 66、给定两个浮点数 3.1415926 和 2.7182818，格式化输出字符串 ‘pi = 3.1416, e = 2.7183’。
# 67、将 0.00774592 和 356800000 格式化输出为科学计数法字符串。
# 68、将列表 [0,1,2,3.14,‘x’,None,’’,list(),{5}] 中各个元素转为布尔型。
# 69、返回字符 ‘a’ 和 ‘A’ 的ASCII编码值。
# 70、返回ASCII编码值为 57 和 122 的字符。
# 71、将列表 [3,‘a’,5.2,4,{},9,[]] 中 大于3的整数或浮点数置为1，其余置为0。
# 72、将二维列表 [[1], [‘a’,‘b’], [2.3, 4.5, 6.7]] 转为 一维列表。
# 73、将等长的键列表和值列表转为字典。
# 74、数字列表求和。
